Welcome to opencv!

1.06 图像运算

1、图像加法运算,

对于+号运算,当对图像a、图像b进行加法求和时,遵循以下规则:

当某位置像素相加得到的数值小于255时,该位置数值为两图像该位置相加之和

当某位置像素相加得到的数值大于255时,该位置为两像素相加之和,对256取模(如200+80=280-256=34)

import cv2

a=cv2.imread(r"opencv1.4.1.jpg") #像素204*167

b=cv2.imread(r"opencv1.4.2.jpg") #像素197*170

ab=a[0:160,0:160]+b[0:160,0:160]

cv2.imshow("result",ab) #显示图片

cv2.waitKey(100000) #停100000s,关闭显示图片窗口后,程序仍不会中止,需要手动中止。

图像为如下:


对于cv2.add()运算,当对图像a,图像b进行加法求和时,遵循以下规则:

当某位置像素相加得到的数值小于255时,访位置数值为两图像该位置相加之和

当某位置像素相加得到的数值大于255时,该位置数值为255.

import cv2

a=cv2.imread(r"opencv1.4.1.jpg") #像素204*167

b=cv2.imread(r"opencv1.4.2.jpg") #像素197*170

a=cv2.resize(a,(160,160))

b=cv2.resize(b,(160,160))

c=cv2.add(a,b)

cv2.imshow("result",c) #显示图片

cv2.waitKey(100000) #停100000s,关闭显示图片窗口后,程序仍不会中止,需要手动中止。

返回图像:


import cv2

a=cv2.imread(r"opencv1.4.1.jpg") #像素204*167

b=cv2.imread(r"opencv1.4.1.jpg") #像素197*170

aj=a+10

cv2.imshow("result",aj) #显示图片

cv2.waitKey(100000) #停100000s,关闭显示图片窗口后,程序仍不会中止,需要手动中止。

图像为如下:

import cv2

a=cv2.imread(r"opencv1.4.1.jpg") #像素204*167

b=cv2.imread(r"opencv1.4.1.jpg") #像素197*170

aj=a-10

cv2.imshow("result",aj) #显示图片

cv2.waitKey(100000) #停100000s,关闭显示图片窗口后,程序仍不会中止,需要手动中止。


2、图像加权计算:

就是计算两幅图像的像素值之和时,将每幅图像的权重考虑进来,可以用公式表示为dst=src1*a+src*b+y(y可以自由调整)

返回图像:

import cv2

a=cv2.imread(r"opencv1.4.1.jpg") #像素204*167

b=cv2.imread(r"opencv1.4.2.jpg") #像素197*170

a=cv2.resize(a,(160,160))

b=cv2.resize(b,(160,160))

c=cv2.addWeighted(a,0.7,b,0.3,10)

cv2.imshow("result",c) #显示图片

cv2.waitKey(100000) #停100000s,关闭显示图片窗口后,程序仍不会中止,需要手动中止。

返回图像: